package SEG_DataLayer;

import CommonDataLayer.ConexionDB;
import SEG_EntityLayer.*;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

public class SEG_EmpresaDL {
    
    private final static SEG_EmpresaDL _instancia = new SEG_EmpresaDL();
    
    private SEG_EmpresaDL() {
    }

    public static SEG_EmpresaDL getInstancia() {
        return _instancia;
    }
    
    //-----------------------------------------------------------------------------
    // <editor-fold defaultstate="collapsed" desc="Select">
    
        /**
        * Lista las empresas activas.
        * @return  un <code>List</code> con las entidades de empresas.
        * @author Juan Manuel Abanto Mera
        */
        public List<SEG_EmpresaEL> ListarEmpresas() throws Exception {
            Connection conexion = null;
            try {
                conexion = ConexionDB.getInstancia().getConexion();
                CallableStatement sp = conexion.prepareCall("{call uspSEG_ListarEmpresas() }");
                ResultSet rs = sp.executeQuery();
                List<SEG_EmpresaEL> lista = new ArrayList<SEG_EmpresaEL>();
                
                while (rs.next()){
                    SEG_EmpresaEL empresa = new SEG_EmpresaEL();
                    empresa.setEmpresa(rs.getByte("Empresa"));
                    empresa.setRuc(rs.getString("Ruc"));
                    empresa.setRazonSocial(rs.getString("RazonSocial"));
                    lista.add(empresa);
                }
                conexion.close();
                return lista;
            }
            catch(Exception ex) {
                throw new Exception(ex);
            }
            finally {
                if (conexion != null && !conexion.isClosed()) {
                    conexion.close();
                }
            }
        }
    
    // </editor-fold>
    
    //-------------------------------------------------------------------------------
    // <editor-fold defaultstate="collapsed" desc="Insert">
    // </editor-fold>
    
    //-------------------------------------------------------------------------------
    // <editor-fold defaultstate="collapsed" desc="Update">
    // </editor-fold>
    
    //------------------------------------------------------------------------------    
    // <editor-fold defaultstate="collapsed" desc="Delete">
    // </editor-fold>
}
